package JavaSE;
import java.util.Scanner;

//创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
//
//要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
public class time_2025_07_04写一个找出最大值的函数 {
    //在Java中方法必须包含在类的内部
    public static double max2(double num1,double num2){
        return num1 > num2 ? num1 : num2;
    }

    /*public static double max3(double num1,double num2,double num3){
        if((num1>=num2)&(num1>=num3)){
            return num1;
        }if((num2>=num1)&&(num2>=num3)){
            return num2;
        }if((num3>=num1)&&(num3>=num2)){
            return num3;
        }
    }
    这段代码会报错，报错信息是没有return，但是为什么写了return还是提示说没有return呢？以为如果所有条件都不符合的话，那所有if都跳过了，这个函数确实就没有return了，所以要用els处理num3最大的情况
    */
    public static double max3(double num1,double num2,double num3){
        System.out.println("提示：如果输入的数有两个及以上的数一样大且为这三个数中最大的数，那么取第一次出现的那个数作为最大值");
        if((num1>=num2)&(num1>=num3)){
            return num1;
        }if((num2>=num1)&&(num2>=num3)){
            return num2;
        }else{
            return num3; // 这里处理num3最大的情况
        }
    }

    /*
   一种更简便的写法
   public staic double max3(double num1,double num2,double num3){
   return max2(max2(num1,num2),num3);
   }
   */

    public static void main(String[] args) {
        System.out.println("请输入您要比较两个数还是三个数的大小：（输入2或3）");
        Scanner scanner = new Scanner(System.in);
        int inputnum = scanner.nextInt();
        double result = 0.0;
        if(inputnum==2){
            double num1 = scanner.nextDouble();
            double num2 = scanner.nextDouble();
            result = max2(num1,num2);
        }if(inputnum==3){
            double num1 = scanner.nextDouble();
            double num2 = scanner.nextDouble();
            double num3 = scanner.nextDouble();
            result = max3(num1,num2,num3);
        }
        System.out.println("您输入的数中最大的数是："+result);
        scanner.close();//释放资源
    }
}
